package com.expert.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.expert.Mapper.NoticeMapper;
import com.expert.dto.AddNoticeDTO;
import com.expert.pojo.Notice;
import com.expert.vo.NoticeVo;
import org.springframework.beans.factory.annotation.Autowired;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * @ClassName: NoticeService
 * @Author: cxs
 * @Date: 2024/03/18 13:36
 * @Description:
 **/

public interface NoticeService  extends IService<Notice> {

    /**
     * 添加通知
     * @param addNoticeDTO 添加通知
     */
    void addNotice(AddNoticeDTO addNoticeDTO);

    /**
     * 分页查询通知
     * @param page
     * @param pageSize
     * @param noticeTitle
     * @param noticeType
     * @param beginTime
     * @return
     */
    Page<NoticeVo> pageNotice(Integer page, Integer pageSize, String noticeTitle, Integer noticeType, LocalDateTime beginTime,LocalDateTime endTime);

    /**
     * 根据id查询通知
     * @param id
     * @return
     */
    NoticeVo getInfoById(Long id);

    /**
     * 删除通知消息
     * @param ids
     */
    void deleteNotice(List<Long> ids);

    /**
     * 分页查询用户通知
     * @param page
     * @param pageSize
     * @return
     */
    Page<NoticeVo> pageUserNotice(Integer page, Integer pageSize);

    /**
     * 修改通知
     * @param notice
     */
    void updateNotice(Notice notice);
}
